package com.jdd.modules.userstaff.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jdd.common.util.excel.annotation.Excel;
import com.jdd.utils.compare.Compare;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
/**
 * @Description: 人员
 * @Author: jdd
 * @Date:   2022-03-23
 * @Version: V1.0
 */
@Data
@TableName("t_user")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="t_user对象", description="人员")
public class User {

	/**
	 * 区域
	 */
	@Compare("区域")
	@ApiModelProperty(value = "区域")
	private String areaId;

	/**
	 * 楼栋id
	 */
	@Compare("楼栋id")
	@ApiModelProperty(value = "楼栋id")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String buildingId;

	/**
	 * 单元id
	 */
	@Compare("单元id")
	@ApiModelProperty(value = "单元id")
	@TableField(updateStrategy = FieldStrategy.IGNORED)

	private String unitId;

	/**
	 * 楼层id
	 */
	@Compare("楼层id")
	@ApiModelProperty(value = "楼层id")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String floorId;

	/**
	 * 部门
	 */
	@Compare("部门")
	@ApiModelProperty(value = "部门")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String departmentId;
	/**id*/
	@Compare("id")
	@TableId(type = IdType.UUID)
    @ApiModelProperty(value = "id")
	private String id;

	/**创建时间*/
	@Compare("创建时间")
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;

	/**更新时间*/
//	@Compare("更新时间")
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;
	/**姓名*/
	@Compare("姓名")
	@Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名")
	private String userName;
	/**手机号*/
	@Compare("手机号")
	@Excel(name = "手机号", width = 15)
    @ApiModelProperty(value = "手机号")
	private String mobile;
	/**证件类型*/
	@Compare("证件类型")
	@Excel(name = "证件类型", width = 15)
    @ApiModelProperty(value = "证件类型")
	private String certType;
	/**性别*/
	@Compare("性别")
	@Excel(name = "性别", width = 15)
    @ApiModelProperty(value = "性别")
	private Integer gender;
	/**备注*/
	@Compare("备注")
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
	private String remark;
	/**国籍*/
	@Compare("国籍")
	@Excel(name = "国籍", width = 15)
    @ApiModelProperty(value = "国籍")
	private String nation;
	/**民族*/
	@Compare("民族")
	@Excel(name = "民族", width = 15)
    @ApiModelProperty(value = "民族")
	private String ethnic;
	/**籍贯*/
	@Compare("籍贯")
	@Excel(name = "籍贯", width = 15)
    @ApiModelProperty(value = "籍贯")
	private String hometown;
	/**出生日期*/
	@Compare("出生日期")
	@Excel(name = "出生日期", width = 15)
    @ApiModelProperty(value = "出生日期")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date birthday;
	/**住址*/
	@Compare("住址")
	@Excel(name = "住址", width = 15)
    @ApiModelProperty(value = "住址")
	private String address;

	/**房屋id*/
	@Compare("房屋id")
	@Excel(name = "房屋id", width = 15)
	@ApiModelProperty(value = "房屋id")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String houseId;


	/**状态1-正常2-停用*/
	@Compare("状态")
	@Excel(name = "状态1-正常2-创建失败3-删除失败", width = 15)
    @ApiModelProperty(value = "状态1-正常2-创建失败3-删除失败")
	private Integer status;
	/**创建人*/
	@Compare("创建人")
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
	private String createUser;
	/**证件号*/
	@Compare("证件号")
	@Excel(name = "证件号", width = 15)
    @ApiModelProperty(value = "证件号")
	private String idCard;
	/**项目人员类型id*/
	@Compare("项目人员类型id")
	@Excel(name = "项目人员类型id", width = 15)
	@ApiModelProperty(value = "项目人员类型id")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String projectUserTypeId;

	/**项目人员类型id*/
	@Compare("人员类型")
	@Excel(name = "人员类型", width = 15)
	@ApiModelProperty(value = "人员类型")
	private Integer userType;

	/**人脸图片*/
	@Compare("人脸图片")
	@Excel(name = "人脸图片", width = 15)
	@ApiModelProperty(value = "人脸图片")
	private String imgUrl;

	/**项目Id*/
	@Compare("项目id")
	@Excel(name = "项目id", width = 15)
	@ApiModelProperty(value = "项目id")
	private String projectId;

	/**
	 * 数字权限
	 */
	@Compare("数字权限")
	@Excel(name = "数字权限", width = 15)
	@ApiModelProperty(value = "数字权限")
	private String sysProjectCode;
}
